package com.rbac.service;

import com.rbac.dto.RoleQueryDTO;
import com.rbac.entity.SysRole;
import com.github.pagehelper.PageInfo;
import com.rbac.vo.RoleVO;

import java.util.List;

public interface RoleService {
	/**
	 * 根据角色编码查询角色
	 */
	SysRole getRoleByRoleCode(String roleCode);
	
	/**
	 * 根据ID查询角色
	 */
	SysRole getRoleById(Long id);
	
	/**
	 * 获取角色列表
	 */
	PageInfo<RoleVO> getRoleList(RoleQueryDTO queryDTO);
	
	/**
	 * 新增角色
	 */
	boolean addRole(SysRole role);
	
	/**
	 * 更新角色
	 */
	boolean updateRole(SysRole role);
	
	/**
	 * 删除角色
	 */
	boolean deleteRole(Long id);
	
	/**
	 * 更新角色状态
	 */
	boolean updateRoleStatus(Long id, Integer status);
	
	/**
	 * 查询角色已分配的权限ID列表
	 */
	List<Long> getPermissionIdsByRoleId(Long roleId);
	
	/**
	 * 给角色分配权限
	 */
	boolean assignPermissions(Long roleId, List<Long> permissionIds);
} 